5. Object Storage
- Object Storage는 ECI에서 제공하는 S3 compatible Object Storage 서비스입니다.
- 아래의 정보로 Object Storage에 접근할 수 있습니다:
- Bucket Name: Object Storage 생성 시 할당된 Bucket Name
- Access Key: Object Storage User 생성 시 발급받은 Access Key
- Secret Key: Object Storage User 생성 시 발급받은 Secret Key
5.1 Object Storage 생성
- Object Storage 탭을 클릭합니다.
- NEW 버튼을 클릭하여 생성 페이지로 이동합니다.
- Object Storage를 생성할 Zone의 ID를 선택합니다.
- Name을 입력합니다.
- Size를 입력합니다. (단위: GiB)
- Create 버튼을 클릭하여 Object Storage를 생성합니다.
- 생성된 Object Storage의 Status가 activated로 바뀌면 생성이 완료됩니다.
- bucket-name을 사용하여 Object Storage에 접근할 수 있습니다.
5.2 Object Storage User 생성
- Object Storage의 User 탭을 클릭합니다.
- NEW 버튼을 클릭하여 생성 페이지로 이동합니다.
- User를 생성할 Zone의 ID를 선택합니다.
- Name을 입력합니다.
- Create 버튼을 클릭하여 Object Storage User를 생성합니다.
- 생성된 Object Storage User의 Status가 activated로 바뀌면 생성이 완료됩니다.
- 생성된 Object Storage User의 Access Key와 Secret Key를 사용하여 Object Storage에 접근할 수 있습니다.
5.3 Object Storage User Grant 생성
- Object Storage의 User Grant 탭을 클릭합니다.
- NEW 버튼을 클릭하여 생성 페이지로 이동합니다.
- User Grant를 생성할 Zone의 ID를 선택합니다.
- 권한을 부여할 Object Storage User의 ID를 선택합니다.
- 권한을 부여할 Object Storage의 ID를 선택합니다.
- Permission을 선택합니다.
- read_only: 읽기 권한
- read_write: 읽기 및 쓰기 권한
- Create 버튼을 클릭하여 Object Storage User Grant를 생성합니다.
- 생성된 Object Storage User Grant의 Status가 activated로 바뀌면 생성이 완료됩니다.
5.4 Object Storage 사용법
rclone
, aws
등의 S3 호환 클라이언트를 사용하여 Object Storage를 사용할 수 있습니다.
로컬 파일을 Object Storage에 업로드하기
aws-cli 사용 예시
aws-cli
설치
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
- 인증 설정
aws configure
Access Key ID [None]: YOUR_ACCESS_KEY
Secret Access Key [None]: YOUR_SECRET_KEY
Default region name [None]: (빈칸으로 두고 Enter)
Default output format [None]: (빈칸으로 두고 Enter)
- endpoint 설정
# 아래의 내용을 ~/.aws/config 파일에 추가
[default]
services = s3
[services s3]
s3 =
endpoint_url = https://s3.elice.cloud
- 파일 업로드
# YOUR_BUCKET_NAME은 eci-... 로 시작하는 bucket name을 사용합니다.
aws s3 cp /path/to/local/file s3://YOUR_BUCKET_NAME/path/in/bucket
rclone 사용 예시
rclone
설치
sudo -v ; curl https://rclone.org/install.sh | sudo bash
rclone
설정
rclone config
-
n → 새 remote 생성
-
Name: elicecloud
-
Storage: 4
-
Provider: 4
-
env_auth: (빈칸으로 두고 Enter)
-
Access Key ID: YOUR_ACCESS_KEY
-
Secret Access Key: YOUR_SECRET_KEY
-
Region: (빈칸으로 두고 Enter)
-
Endpoint: https://s3.elice.cloud
-
Location constraint: (빈칸으로 두고 Enter)
-
acl: (빈칸으로 두고 Enter)
-
server_side_encryption? (빈칸으로 두고 Enter)
-
sse_kms_key_id? (빈칸으로 두고 Enter)
-
Edit advanced config: n
-
Keep this "elicecloud" remote: y
-
q -> quit
-
파일 업로드
# YOUR_BUCKET_NAME은 eci-... 로 시작하는 bucket name을 사용합니다.
rclone copy /path/to/local/file elicecloud:YOUR_BUCKET_NAME/path/in/bucket --s3-no-check-bucket
- ECI Object Storage의 s3 bucket 생성은 portal에서만 가능하므로,
--s3-no-check-bucket
옵션을 사용합니다.
VM에 Object Storage 마운트하기
- VM에
rclone
설치
sudo -v ; curl https://rclone.org/install.sh | sudo bash
rclone
설정
rclone config
-
n → 새 remote 생성
-
Name: elicecloud
-
Storage: 4
-
Provider: 4
-
env_auth: (빈칸으로 두고 Enter)
-
Access Key ID: YOUR_ACCESS_KEY
-
Secret Access Key: YOUR_SECRET_KEY
-
Region: (빈칸으로 두고 Enter)
-
Endpoint: https://s3.elice.cloud
-
Location constraint: (빈칸으로 두고 Enter)
-
acl: (빈칸으로 두고 Enter)
-
server_side_encryption? (빈칸으로 두고 Enter)
-
sse_kms_key_id? (빈칸으로 두고 Enter)
-
Edit advanced config: n
-
Keep this "elicecloud" remote: y
-
q -> quit
-
Object Storage 마운트
# YOUR_BUCKET_NAME은 eci-... 로 시작하는 bucket name을 사용합니다.
rclone mount elicecloud:YOUR_BUCKET_NAME /path/to/mount/point --daemon
rclone 마운트 시 중의사항
- rclone으로 마운트할 경우 chunk size가 기본으로 5MiB가 됩니다.
- 최대 chunk 개수는 10,000개입니다.
- 따라서 기본값으로 단일 파일 업로드 가능 용량은 약 48GiB입니다.
- 더 큰 크기의 단일파일 용량을 업로드하고 싶다면
--s3-chunk-size
옵션을 추가해야 합니다. - 예시:
--s3-chunk-size=0.1Gi
→ 최대 약 1TiB의 단일파일 업로드 가능 - rclone으로 마운트된 Object Storage를
df -h
로 확인하면 용량이 정확히 표시되지 않고 1.0P(페타바이트)로 표시됩니다.
chunk size 증가 시 trade-off:
- 장점: 더 큰 단일 파일 업로드 가능
- 단점:
- 메모리 사용량 증가 (chunk size만큼 메모리 사용)
- 네트워크 재시도 시 더 많은 데이터 재전송
- 업로드 실패 시 더 많은 데이터 손실 위험
예시 - 큰 파일 업로드를 위한 마운트:
rclone mount elicecloud:YOUR_BUCKET_NAME /path/to/mount/point --daemon --s3-chunk-size=0.1Gi